#include <bits/stdc++.h>
using namespace std;
int main()
{
    // 初始化字符串
    string str = "Hello, World!";
    string s = "World";

    // 字符串比较
    if (str == "Hello, World!")
        cout << "字符串相等!" << endl;

    if (str < "Hello, Zorld!")
        cout << "字符串 str 小于 Hello, Zorld!" << endl;

    // 访问字符串中的字符
    cout << "第一个字符是: " << str[0] << endl;

    // 字符串拼接
    string combined = str + " Welcome!";
    cout << "拼接后的字符串: " << combined << endl;

    // 获取字符串长度
    cout << "字符串长度: " << str.size() << " 或 " << str.length() << endl;

    // 字符串查找 在str里面查找子字符串s的第一个出现位置，查找不到就返回string::npos，用-1也行
    size_t pos = str.find(s);
    if (pos != string::npos)//if (str.find(s) != -1)
        cout << "子字符串 '" << s << "' 出现的位置: " << pos << endl;
    else
        cout << "没有找到子字符串 '" << s << "'" << endl;

    // 字符串替换 替换从位置 0 开始，长度为 5 的子字符串为 "Hi"
    str.replace(7, 5, "C++");
    cout << "替换后的字符串: " << str << endl;

    // 字符串翻转
    reverse(str.begin(), str.end());
    cout << "翻转后的字符串: " << str << endl;

    // 获取子字符串
    string substr = str.substr(0, 5); // 获取前5个字符
    cout << "子字符串: " << substr << endl;

    // 删除子字符串
    str.erase(0, 5); // 删除从位置0开始的5个字符
    cout << "删除后的字符串: " << str << endl;

    // 字符串转数字
    string numStr = "1234";
    int num = stoi(numStr); // 字符串转整数
    cout << "字符串转整数: " << num << endl;

    // 数字转字符串
    int value = 5678;
    string strNum = to_string(value); // 整数转字符串
    cout << "数字转字符串: " << strNum << endl;
    return 0;
}